package cn.com.surker.production.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 生产泵送结算信息表
 * </p>
 *
 * @author admin
 * @since 2024-05-31
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class ProductionPumpBill implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 公司ID
     */
    private Long orgId;

    /**
     * 公司
     */
    private String orgName;

    /**
     * 公司全称
     */
    private String orgFull;

    /**
     * 结算时间
     */
    private String today;

    /**
     * 运输供应商ID
     */
    private Long supplierId;

    /**
     * 运输供应商
     */
    private String supplier;

    /**
     * 泵送类型
     */
    private Long pumpType;
    /**
     * 泵送规格
     */
    private Long pumpNorms;
    /**
     * 合同ID
     */
    private Long contractId;
    /**
     * 价格类型
     */
    private Integer priceType;

    /**
     * 泵送方量
     */
    private Double stere;

    /**
     * 单价
     */
    private Double price;

    /**
     * 总金额
     */
    private Double billMoney;
    /**
     * 含税单价
     */
    private Double taxPrice;

    /**
     * 含税总价
     */
    private Double taxBillMoney;

    /**
     * 是否导出(0:未导出1:已导出)
     */
    private Integer isExport;

    /**
     * ERPID
     */
    private Integer erpid;

    /**
     * 结算开始时间
     */
    private String startTime;

    /**
     * 结算结束时间
     */
    private String endTime;

    /**
     * 是否结算(0:结算1:不结算)
     */
    private Integer isBill;

    /**
     * 生产审核(0:未审核1:已审核)
     */
    private Integer isProduction;

    private String checker;

    private String checkTime;

    /**
     * 财务审核(0:未审核1:已审核)
     */
    private Integer isFinance;


    private String finance;

    private String financeTime;

    private Integer isAuto;
    /**
     * 状态(0:启用1：禁用)
     */
    private Integer status;

    /**
     * 审核备注，当审核结果为不通过时，必填
     */
    private String remark;

    /**
     * 创建人
     */
    private String creator;

    /**
     * 创建日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date createTime;

    /**
     * 更新人
     */
    private String updator;
    /**
     * 更新日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date updateTime;

    public ProductionPumpBill(){}

    public ProductionPumpBill(Long orgId, String orgName, String orgFull, String today, Long supplierId,
                              String supplier, Long pumpType, Long pumpNorms, Long contractId, Integer priceType,
                              Double stere, Double price, Double billMoney, Double taxPrice, Double taxBillMoney,
                              Integer isExport, Integer erpid, String startTime, String endTime, Integer isBill,
                              Integer isProduction, String checker, String checkTime, Integer isFinance,
                              String finance, String financeTime, Integer isAuto, Integer status, String remark,
                              String creator, Date createTime, String updator, Date updateTime) {
        this.orgId = orgId;
        this.orgName = orgName;
        this.orgFull = orgFull;
        this.today = today;
        this.supplierId = supplierId;
        this.supplier = supplier;
        this.pumpType = pumpType;
        this.pumpNorms = pumpNorms;
        this.contractId = contractId;
        this.priceType = priceType;
        this.stere = stere;
        this.price = price;
        this.billMoney = billMoney;
        this.taxPrice = taxPrice;
        this.taxBillMoney = taxBillMoney;
        this.isExport = isExport;
        this.erpid = erpid;
        this.startTime = startTime;
        this.endTime = endTime;
        this.isBill = isBill;
        this.isProduction = isProduction;
        this.checker = checker;
        this.checkTime = checkTime;
        this.isFinance = isFinance;
        this.finance = finance;
        this.financeTime = financeTime;
        this.isAuto = isAuto;
        this.status = status;
        this.remark = remark;
        this.creator = creator;
        this.createTime = createTime;
        this.updator = updator;
        this.updateTime = updateTime;
    }

    public ProductionPumpBill(Long orgId, String orgName, String orgFull, String today, Long supplierId,
                              String supplier, Long pumpType, Double stere, Double price,
                              Double billMoney, Integer isExport, Integer erpid, String startTime,
                              String endTime, Integer isProduction, Integer isBill, Integer isFinance,
                              Integer status, String remark, String creator, Date createTime, Long pumpNorms,
                              Long contractId, Integer priceType) {
        this.orgId = orgId;
        this.orgName = orgName;
        this.orgFull = orgFull;
        this.today = today;
        this.supplierId = supplierId;
        this.supplier = supplier;
        this.pumpType = pumpType;
        this.pumpNorms = pumpNorms;
        this.contractId = contractId;
        this.priceType = priceType;
        this.stere = stere;
        this.price = price;
        this.billMoney = billMoney;
        this.isExport = isExport;
        this.erpid = erpid;
        this.startTime = startTime;
        this.endTime = endTime;
        this.isProduction = isProduction;
        this.isBill = isBill;
        this.isFinance = isFinance;
        this.status = status;
        this.remark = remark;
        this.creator = creator;
        this.createTime = createTime;
    }
}
